﻿using System;
using System.Collections.Generic;
using System.Text;

namespace FD.FileSyncServer.Core.Containers
{
    /*
     * CreatedOn: 2018-05-15
     * CreatedBy: Jackie Lee(天宇遊龍)
     */
    /// <summary>
    /// 容器
    /// </summary>
    public interface IContainer
    {
        /// <summary>
        /// 解析单个
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        T Resove<T>();

        /// <summa1ry>
        /// 解析单个
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        object Resove(Type type);

        /// <summary>
        /// 解析类型全部
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <returns></returns>
        IEnumerable<T> ResoveAll<T>();

        /// <summary>
        /// 解析类型全部
        /// </summary>
        /// <param name="type"></param>
        /// <returns></returns>
        IEnumerable<object> ResoveAll(Type type);

        void Register();

    }
}
